Skip to content

feat: follow up Claude Code, Codex CLI, and Goose upstream updates - #1770

Merged
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issues-20260608-2
Jun 9, 2026
Merged

feat: follow up Claude Code, Codex CLI, and Goose upstream updates#1770
dyoshikawa merged 2 commits into
mainfrom
resolve-scrap-issues-20260608-2

Conversation

@dyoshikawa

Copy link
Copy Markdown
Owner

Summary

Resolves three maintainer-scrap follow-up issues (upstream updates) in one batch.

#1740 — Claude Code: disallowed-tools, MessageDisplay hook, MCP ws / streamable-http

  • MCP transports — added ws and streamable-http to the type and transport enums in McpServerSchema (src/types/mcp.ts). streamable-http is the MCP spec's alias of http; ws is the WebSocket transport (same url/headers/headersHelper/timeout fields as http). Both were previously rejected by safeParse.
  • MessageDisplay hook — added the canonical messageDisplay event plus the messageDisplay → MessageDisplay mapping, and listed it in CLAUDE_HOOK_EVENTS.
  • disallowed-tools — added first-class disallowed-tools frontmatter (string or list) to Claude Code slash commands and skills. It round-trips through the claudecode frontmatter section.

#1741 — Codex CLI: emit agents/openai.yaml sidecar

  • Added a new codexcli frontmatter section carrying interface / policy / dependencies. When present, CodexCliSkill emits .codex/skills/<name>/agents/openai.yaml and reads it back on import.
  • The user-facing short description is routed to interface.short_description (the canonical home per Codex docs); the legacy codexcli.short-descriptionSKILL.md metadata.short-description mapping is preserved for backward compatibility. SKILL.md frontmatter stays name + description only.

#1742 — Goose: lifecycle Hooks adapter

  • Added GooseHooks (src/features/hooks/goose-hooks.ts) emitting .agents/plugins/rulesync/hooks/hooks.json (project) and the same path under ~ (global), following the Open Plugins spec auto-discovery convention.
  • Registered goose in hooks-processor with GOOSE_HOOK_EVENTS and canonical mappings for the 11 supported events (SessionStart, SessionEnd, Stop, UserPromptSubmit, PreToolUse, PostToolUse, PostToolUseFailure, BeforeReadFile, AfterFileEdit, BeforeShellExecution, AfterShellExecution).
  • Gitignored the generated plugin directory (**/.agents/plugins/) and synced README / docs.

Validation evidence (primary sources)

Test plan

  • pnpm cicheck — green (fmt, oxlint, typecheck, 6009 unit tests, sync-skill-docs, cspell, secretlint).
  • Added unit tests: MCP transports, messageDisplay mapping, command/skill disallowed-tools round-trip, Codex agents/openai.yaml emit + round-trip, GooseHooks generate/import.
  • E2E: added goose to the hooks Tool × Feature happy-path matrix (generate / import / global) — e2e-hooks, e2e-skills, e2e-gitignore all pass.

Closes #1740
Closes #1741
Closes #1742

cm-dyoshikawa and others added 2 commits June 8, 2026 06:56
Resolves three maintainer-scrap follow-ups in one batch:

#1740 (Claude Code): add ws + streamable-http MCP transports to McpServerSchema type/transport enums; add the messageDisplay canonical hook event with the Claude MessageDisplay mapping; add first-class disallowed-tools frontmatter to Claude Code slash commands and skills (round-trips via the claudecode section).

#1741 (Codex CLI): emit an agents/openai.yaml sidecar next to SKILL.md from a new codexcli interface/policy/dependencies frontmatter section, route the user-facing short description to interface.short_description, and read the sidecar back on import. SKILL.md frontmatter stays name + description only; legacy metadata.short-description is preserved.

#1742 (Goose): add a Goose lifecycle hooks adapter that writes .agents/plugins/rulesync/hooks/hooks.json (project + global), register it in hooks-processor with GOOSE_HOOK_EVENTS and canonical mappings, gitignore the plugin dir, and sync README/docs.

Closes #1740

Closes #1741

Closes #1742

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…h project conventions

Address /review-pr mid-severity findings on PR #1770:

- Add "messageDisplay" to CLAUDE_NO_MATCHER_EVENTS so the matcher field
  is dropped (with a warning) when present. Per the Claude Code hooks
  docs, MessageDisplay does not support a matcher and silently ignores
  it. Add a converter test asserting the matcher is dropped, and update
  the no-matcher note in both file-formats docs.
- Pass { lineWidth: -1, noRefs: true } to js-yaml dump() when emitting
  the Codex agents/openai.yaml sidecar, matching the project-wide dump
  convention and avoiding line-folding of long URLs/descriptions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dyoshikawa
dyoshikawa merged commit da8edfa into main Jun 9, 2026
9 checks passed
@dyoshikawa
dyoshikawa deleted the resolve-scrap-issues-20260608-2 branch June 9, 2026 01:28
dyoshikawa pushed a commit that referenced this pull request Jun 9, 2026
Resolve conflicts from upstream Goose hooks (#1770) and Agent Skills (#1775):
- src/types/hooks.ts: keep both new HookEvent members (workspaceOpen + messageDisplay)
- src/features/skills/rulesync-skill.ts: keep both new skill sections (cursor + agentsskills) in schema and input type
- docs/reference/file-formats.md: merge the hook matrix to 16 columns (incl. Goose),
  re-applying #1774's changes (workspaceOpen row, deepagents notification, Factory Droid
  permissionRequest/setup cleanup) on top of the upstream messageDisplay row; regenerate
  skills/rulesync/file-formats.md via the docs sync script

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants